package com.yaorange.service;

import com.github.pagehelper.PageInfo;
import com.yaorange.entity.Customer;

import java.util.List;
import java.util.Map;
import java.util.Set;

public interface CustomerService {

    //获取数据库中的电话号码与前端校验后的电话号码集合比对是否还有重复的集合
    List<String> getRepeatPhones(Set<String> importCustomerPhones);


    //批量导入
    int importList(Map<String, Customer> importCustomerMap);


    int add(Customer customer);


    PageInfo<Customer> customerList(Integer pageNum, Integer pageSize, Integer empId);


    int update(Customer customer);


    List<Map<String, Object>> getRosterList(Integer empId);


    PageInfo<Customer> getRosterPage(Integer pageNum, Integer pageSize, String rosterName);


    int updateCustomerByIds(List<Integer> customerIds, Integer deptId);


    int updateCustomerByRosterName(String rosterName, Integer deptId);


    List<Map<String, Object>> getWeekData();


    List<Map<String, Object>> getYearAndMonthData(int addType, String monthValue);


    PageInfo<Customer> getNewOrderList(Integer pageNum, Integer pageSize, Integer empId);

    Customer getCustomerById(Integer customerId);

    int updateCustomer(Customer customer);

    PageInfo<Customer> getFollowPage(Integer pageNum, Integer pageSize, Integer empId);

    int updateById(Integer customerId);

    PageInfo<Customer> getValidPage(Integer pageNum, Integer pageSize, Integer empId);

    Customer getCustomerAndPropertyById(Integer id);


    int updateBySelective(Customer customer);

    int updateCustomerWithOrder(Customer customer);

    PageInfo<Customer> getPageByDeptId(Integer pageNum, Integer pageSize, Integer deptId);

    PageInfo<Customer> getInvalidPageByDeptId(Integer pageNum, Integer pageSize, Integer deptId);

    //已签单客户分页数据
    PageInfo<Customer> getSigendPage(Integer pageNum, Integer pageSize, Integer empId);

    //已签单客户回显
    Customer getSignedCustomerById(Integer id);
}
